1. Technical Field
The disclosure and claims herein generally relate to multi-node computer systems, and more specifically relate to optimization of job distribution on a multi-node computer system.
2. Background Art
Supercomputers and other multi-node computer systems continue to be developed to tackle sophisticated computing jobs. One type of multi-node computer system is a massively parallel computer system. A family of such massively parallel computers is being developed by International Business Machines Corporation (IBM) under the name Blue Gene. The Blue Gene/L system is a high density, scalable system in which the current maximum number of compute nodes is 65,536. The Blue Gene/L node consists of a single ASIC (application specific integrated circuit) with 2 CPUs and memory. The full computer is housed in 64 racks or cabinets with 32 node boards in each rack.
Computer systems such as Blue Gene have a large number of nodes, each with its own processor and local memory. The nodes are connected with several communication networks. One communication network connects the nodes in a logical tree network. In the logical tree network, the Nodes are connected to an input-output (I/O) node at the top of the tree. The remaining nodes are not connected to the I/O node. Communication from a node further down the tree introduces additional latency in the transfer of data from a data storage unit such as a hard disk drive over the network.
With the communication networks as described above, applications or “jobs” loaded on nodes further down the tree network will take longer to execute due to I/O latency in the tree network. This can be a problem for jobs that require significant amounts of I/O communication to execute. In addition, jobs executing further from the I/O node are more likely to suffer from a network failure since there are more network connections between the job and the data resource. Without a way to optimize job allocation on multiple nodes, parallel computer systems will continue to suffer from reduced efficiency of computer system.